<!DOCTYPE html>
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
  <meta name="description" content="刘清政">
  <meta name="keyword" content="hexo-theme">
  
    <link rel="shortcut icon" href="/css/images/logo.png">
  
  <title>
    
      [置顶]Python系列教程 | Justin-刘清政的博客
    
  </title>
  <link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
  <link href="//cdnjs.cloudflare.com/ajax/libs/nprogress/0.2.0/nprogress.min.css" rel="stylesheet">
  <link href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/tomorrow.min.css" rel="stylesheet">
  
<link rel="stylesheet" href="/css/style.css">

  
    
<link rel="stylesheet" href="/css/plugins/gitment.css">

  
  <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/geopattern/1.2.3/js/geopattern.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/nprogress/0.2.0/nprogress.min.js"></script>
  
    
<script src="/js/qrious.js"></script>

  
  
    
<script src="/js/gitment.js"></script>

  
  

  
<meta name="generator" content="Hexo 4.2.0"></head>
<div class="wechat-share">
  <img src="/css/images/logo.png" />
</div>

  <body>
    <header class="header fixed-header">
  <div class="header-container">
    <a class="home-link" href="/">
      <div class="logo"></div>
      <span>Justin-刘清政的博客</span>
    </a>
    <ul class="right-list">
      
        <li class="list-item">
          
            <a href="/" class="item-link">主页</a>
          
        </li>
      
        <li class="list-item">
          
            <a href="/tags/" class="item-link">标签</a>
          
        </li>
      
        <li class="list-item">
          
            <a href="/archives/" class="item-link">归档</a>
          
        </li>
      
        <li class="list-item">
          
            <a href="/about/" class="item-link">关于我</a>
          
        </li>
      
    </ul>
    <div class="menu">
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
    </div>
    <div class="menu-mask">
      <ul class="menu-list">
        
          <li class="menu-item">
            
              <a href="/" class="menu-link">主页</a>
            
          </li>
        
          <li class="menu-item">
            
              <a href="/tags/" class="menu-link">标签</a>
            
          </li>
        
          <li class="menu-item">
            
              <a href="/archives/" class="menu-link">归档</a>
            
          </li>
        
          <li class="menu-item">
            
              <a href="/about/" class="menu-link">关于我</a>
            
          </li>
        
      </ul>
    </div>
  </div>
</header>

    <div id="article-banner">
  <h2>[置顶]Python系列教程</h2>



  <p class="post-date">2019-03-10</p>
    <!-- 不蒜子统计 -->
    <span id="busuanzi_container_page_pv" style='display:none' class="">
        <i class="icon-smile icon"></i> 阅读数：<span id="busuanzi_value_page_pv"></span>次
    </span>
  <div class="arrow-down">
    <a href="javascript:;"></a>
  </div>
</div>
<main class="app-body flex-box">
  <!-- Article START -->
  <article class="post-article">
    <section class="markdown-content"><h1 id="Python系列教程"><a href="#Python系列教程" class="headerlink" title="Python系列教程"></a>Python系列教程</h1><p>开启愉快的Python学习之旅吧！！</p>
<h2 id="0-其他"><a href="#0-其他" class="headerlink" title="0-其他"></a>0-其他</h2><p>​    <a href="../其他/01-各主流Linux系统解决pip安装mysqlclient报错/">01-各主流Linux系统解决pip安装mysqlclient报错</a></p>
<p>​    <a href="../其他/02-MySQL主从搭建基于docker/">02-MySQL主从搭建基于docker</a></p>
<p>​    <a href="../其他/03-paramiko模块的使用/">03-paramiko模块的使用</a></p>
<p>​    <a href="../其他/04-MyCat实现分库分表/">04-MyCat实现分库分表</a></p>
<p>​    <a href="../其他/05-Supervisor的使用/">05-Supervisor的使用</a></p>
<p>​    <a href="../其他/06-自动化测试框架-Pytest/">06-自动化测试框架-Pytest</a></p>
<p>​    <a href="../其他/07-ZeroRPC和SimpleXMLRPCServer/">07-ZeroRPC和SimpleXMLRPCServer</a></p>
<p>​    <a href="../其他/08-Rabbitmq从入门到精通/">08-Rabbitmq从入门到精通</a></p>
<p>​    <a href="../其他/09-CMDB/">09-CMDB项目</a></p>
<h2 id="1-markdown编辑器"><a href="#1-markdown编辑器" class="headerlink" title="1-markdown编辑器"></a>1-markdown编辑器</h2><p>1-markdown基本语法</p>
<h2 id="2-计算机基础"><a href="#2-计算机基础" class="headerlink" title="2-计算机基础"></a>2-计算机基础</h2><p>1-计算机基础之编程<br>1-计算机组成原理<br>1-计算机操作系统<br>1-编程语言分类<br>1-网络的瓶颈效应<br>001-计算机基础小结</p>
<h2 id="3-Python解释器和集成环境"><a href="#3-Python解释器和集成环境" class="headerlink" title="3-Python解释器和集成环境"></a>3-Python解释器和集成环境</h2><p>008 Python和Python解释器<br>009 Python解释器安装<br>010 Anaconada安装<br>011 Python解释器镜像源修改<br>012 执行Python程序的两种方式<br>013 Python的IDE之Pycharm的使用<br>014 Python的IDE之Jupyter的使用<br>015 pip的使用<br>016 Python解释器和Python集成环境小结</p>
<h2 id="4-Python基础"><a href="#4-Python基础" class="headerlink" title="4-Python基础"></a>4-Python基础</h2><p>017 变量<br>018 常量<br>019 Python变量内存管理<br>020 变量的三个特征<br>021 花式赋值<br>022 注释<br>023 数据类型基础<br>024 数字类型<br>025 字符串类型<br>026 列表类型<br>027 字典类型<br>028 布尔类型<br>029 解压缩<br>030 Python与用户交互<br>031 格式化输出的三种方式<br>032 基本运算符<br>033 流程控制之if判断<br>034 流程控制之while循环<br>035 流程控制之for循环<br>036 Python基础小结<br>037 Python基础实战之猜年龄游戏</p>
<h2 id="5-Python进阶"><a href="#5-Python进阶" class="headerlink" title="5-Python进阶"></a>5-Python进阶</h2><p>038 异常处理<br>039 数字类型内置方法<br>040 字符串类型内置方法<br>041 列表类型内置方法<br>042 元组类型内置方法<br>043 字典类型内置方法<br>044 集合类型内置方法<br>045 数据类型分类<br>046 Python深浅拷贝<br>047 Python进阶小结<br>048 Python进阶实战之三级菜单</p>
<h2 id="6-文件处理"><a href="#6-文件处理" class="headerlink" title="6-文件处理"></a>6-文件处理</h2><p>049 字符编码<br>050 Python2和3字符编码的区别<br>051 基本的文件操作<br>052 绝对路径和相对路径<br>053 文件的三种打开模式<br>054 with管理文件操作上下文<br>055 文件的高级应用<br>056 文件修改的两种方式<br>057 文件处理小结<br>058 文件处理实战之购物车系统</p>
<h2 id="7-函数基础"><a href="#7-函数基础" class="headerlink" title="7-函数基础"></a>7-函数基础</h2><p>059 函数的定义<br>060 定义函数的三种形式<br>061 函数的返回值<br>062 函数的调用<br>063 函数的参数<br>064 可变长参数<br>065 函数对象<br>066 函数嵌套<br>067 名称空间和作用域<br>068 函数基础小结<br>069 函数基础实战之ATM和购物车系统</p>
<h2 id="8-函数进阶"><a href="#8-函数进阶" class="headerlink" title="8-函数进阶"></a>8-函数进阶</h2><p>070 闭包函数<br>071 装饰器<br>072 迭代器<br>073 三元表达式<br>074 列表推导式<br>075 字典生成式<br>076 生成器<br>077 递归<br>078 匿名函数<br>079 内置函数<br>080 面向过程编程<br>081 函数高级小结<br>082 函数高级实战之ATM和购物车系统升级</p>
<h2 id="9-模块基础"><a href="#9-模块基础" class="headerlink" title="9-模块基础"></a>9-模块基础</h2><p>083 模块的四种形式<br>084 import和from…import<br>085 循环导入问题<br>086 模块的搜索路径<br>087 Python文件的两种用途<br>088 编译Python文件(了解)<br>089 包<br>090 软件开发目录规范<br>091 模块基础小结<br>092 模块基础实战之ATM和购物车系统分文件处理</p>
<h2 id="10-常用模块"><a href="#10-常用模块" class="headerlink" title="10-常用模块"></a>10-常用模块</h2><p>​    <a href="../常用模块/1-time模块/">1-time模块</a></p>
<p>​    <a href="../常用模块/2-datetime模块/">2-datetime模块</a></p>
<p>​    <a href="../常用模块/3-random模块/">3-random模块</a></p>
<p>​    <a href="../常用模块/4-os模块/">4-os模块</a></p>
<p>​    <a href="../常用模块/5-sys模块/">5-sys模块</a></p>
<p>​    <a href="../常用模块/6-json和pickle模块/">6-json和pickle模块</a></p>
<p>​    <a href="../常用模块/7-hashlib和hmac模块/">7-hashlib和hmac模块</a></p>
<p>​    <a href="../常用模块/9-numpy模块/">9-numpy模块</a></p>
<p>​    <a href="../常用模块/10-pandas模块/">10-pandas模块</a></p>
<p>​    <a href="../常用模块/11-matplotlib模块/">11-matplotlib模块</a></p>
<p>   <a href="../常用模块/12-re模块/">12-re模块</a></p>
<p>   <a href="../常用模块/13-typing模块/">13-typing模块</a></p>
<p>   <a href="../常用模块/14-collections模块/">14-collections模块</a></p>
<p>   <a href="../常用模块/15-pathlib模块/">15-pathlib模块（了解）</a></p>
<p>   <a href="../常用模块/16-shutil模块/">16-shutil模块(了解)</a></p>
<p>   <a href="../常用模块/17-xml模块/">17-xml模块(了解)</a></p>
<p>   <a href="../常用模块/18-subprocess模块/">18-subprocess模块(了解)</a></p>
<p>   <a href="../常用模块/19-python常用模块小结/">19-python常用模块小结</a></p>
<p>   <a href="../常用模块/20-ATM+购物车项目/">20-ATM+购物车项目</a></p>
<h2 id="11-面向对象基础"><a href="#11-面向对象基础" class="headerlink" title="11-面向对象基础"></a>11-面向对象基础</h2><p>​    <a href="../面向对象基础/1-面向对象的由来/">1-面向对象的由来</a></p>
<p>​    <a href="../面向对象基础/2-面向对象编程介绍/">2-面向对象编程介绍</a></p>
<p>​    <a href="../面向对象基础/3-类与对象/">3-类与对象</a></p>
<p>​    <a href="../面向对象基础/4-定制对象独有特征/">4-定制对象独有特征</a></p>
<p>​    <a href="../面向对象基础/5-对象属性查找顺序/">5-对象属性查找顺序</a></p>
<p>​    <a href="../面向对象基础/6-对象属性查找顺序/">6-对象属性查找顺序</a></p>
<p>​    <a href="../面向对象基础/7-对象的绑定方法/">7-对象的绑定方法</a></p>
<p>​    <a href="../面向对象基础/8-类和数据类型/">8-类和数据类型</a></p>
<p>​    <a href="../面向对象基础/9-对象的高度整合/">9-对象的高度整合</a></p>
<p>​    <a href="../面向对象基础/10-面向对象基础小结/">10-面向对象基础小结</a></p>
<p>​    <a href="../面向对象基础/11-面向对象基础实战之英雄联盟/">11-面向对象基础实战之英雄联盟</a></p>
<h2 id="12-面向对象进阶"><a href="#12-面向对象进阶" class="headerlink" title="12-面向对象进阶"></a>12-面向对象进阶</h2><p>​    <a href="../面向对象进阶/1-类的继承/">1-类的继承</a></p>
<p>​    <a href="../面向对象进阶/2-类的派生/">2-类的派生</a></p>
<p>​    <a href="../面向对象进阶/3-类的组合/">3-类的组合</a></p>
<p>​    <a href="../面向对象进阶/4-菱形继承问题/">4-菱形继承问题</a></p>
<p>​    <a href="../面向对象进阶/5-super()方法详解/">5-super()方法详解</a></p>
<p>​    <a href="../面向对象进阶/6-类的多态和多态性/">6-类的多态和多态性</a></p>
<p>​    <a href="../面向对象进阶/7-类的封装/">7-类的封装</a></p>
<p>​    <a href="../面向对象进阶/8-类的property特性/">8-类的property特性</a></p>
<p>​    <a href="../面向对象进阶/9-类和对象的绑定方法及非绑定方法/">9-类和对象的绑定方法及非绑定方法</a></p>
<p>​    <a href="../面向对象进阶/10-面向对象进阶小结/">10-面向对象进阶小结</a></p>
<p>​    <a href="../面向对象进阶/11-面向对象进阶实战之选课系统/">11-面向对象进阶实战之选课系统</a></p>
<h2 id="13-面向对象高级"><a href="#13-面向对象高级" class="headerlink" title="13-面向对象高级"></a>13-面向对象高级</h2><p>​    <a href="../面向对象高阶/1-isinstance和issubclass/">1-isinstance和issubclass</a></p>
<p>​    <a href="../面向对象高阶/2-反射(hasattr和getattr和setattr和delattr)/">2-反射(hasattr和getattr和setattr和delattr)</a></p>
<p>​    <a href="../面向对象高阶/3-__setattr__和__delattr__和__getattr__/">3-<code>__setattr__和__delattr__和__getattr__</code></a></p>
<p>​    <a href="../面向对象高阶/4-__getattribute__/"><code>4-__getattribute__</code></a></p>
<p>​    <a href="../面向对象高阶/5-描述符(__get__和__set__和__delete__)/"><code>5-描述符(__get__和__set__和__delete__)</code></a></p>
<p>​    <a href="../面向对象高阶/6-__setitem__和__getitem和__delitem__/"><code>6-__setitem__和__getitem和__delitem__</code></a></p>
<p>​    <a href="../面向对象高阶/7-__format__/"><code>7-__format__</code></a></p>
<p>​    <a href="../面向对象高阶/8-__del__/"><code>8-__del__</code></a></p>
<p>​    <a href="../面向对象高阶/9-__slots__/"><code>9-__slots__</code></a></p>
<p>​    <a href="../面向对象高阶/10-__doc__/"><code>10-__doc__</code></a></p>
<p>​    <a href="../面向对象高阶/11-__call__/"><code>11-__call__</code></a></p>
<p>​    <a href="../面向对象高阶/12-__init__和__new__/"><code>12-__init__和__new__</code></a></p>
<p>​    <a href="../面向对象高阶/13-__str__和__repr__/"><code>13- __str__和__repr__</code></a></p>
<p>​    <a href="../面向对象高阶/14-实现迭代器(__next__和__iter__)/"><code>14-实现迭代器(__next__和__iter__)</code></a></p>
<p>​    <a href="../面向对象高阶/15-__module__和__class__/"><code>15-__module__和__class__</code></a></p>
<p>​    <a href="../面向对象高阶/16-实现文件上下文管理(__enter__和__exit__)/"><code>16-实现文件上下文管理(__enter__和__exit__)</code></a></p>
<p>​    <a href="../面向对象高阶/17-元类(metaclass)/"><code>17-元类(metaclass)</code></a></p>
<p>​    <a href="../面向对象高阶/18-面向对象高级小结/"><code>18-面向对象高级小结</code></a></p>
<p>​    <a href="../面向对象高阶/19-面向对象高级实战之单例模式/"><code>19-面向对象高级实战之单例模式</code></a></p>
<h2 id="14-网络编程"><a href="#14-网络编程" class="headerlink" title="14-网络编程"></a>14-网络编程</h2><p>​    <a href="../网络编程/1-网络架构及其演变过程/">1-网络架构及其演变过程</a></p>
<p>​    <a href="../网络编程/2-互联网和互联网的组成/">2-互联网和互联网的组成</a></p>
<p>​    <a href="../网络编程/3-OSI七层协议/">3-OSI七层协议</a></p>
<p>​    <a href="../网络编程/4-TCP协议的三次握手和四次挥手/">4-TCP协议的三次握手和四次挥手</a></p>
<p>​    <a href="../网络编程/5-基于TCP协议的socket套接字编程/">5-基于TCP协议的socket套接字编程</a></p>
<p>​    <a href="../网络编程/6-Socket抽象层/">6-Socket抽象层</a></p>
<p>​    <a href="../网络编程/7-模拟ssh远程执行命令/">7-模拟ssh远程执行命令</a></p>
<p>​    <a href="../网络编程/8-粘包问题/">8-粘包问题</a></p>
<p>​    <a href="../网络编程/9-解决粘包问题/">9-解决粘包问题</a></p>
<p>​    <a href="../网络编程/10-基于UDP协议的socket套接字编程/">10-基于UDP协议的socket套接字编程</a></p>
<p>​    <a href="../网络编程/11-基于socketserver实现并发的socket套接字编程/">11-基于socketserver实现并发的socket套接字编程</a></p>
<h2 id="15-并发编程"><a href="#15-并发编程" class="headerlink" title="15-并发编程"></a>15-并发编程</h2><p>​    <a href="../Python并发编程/1-操作系统的发展史/">1-操作系统的发展史</a></p>
<p>​    <a href="../Python并发编程/2-进程基础/">2-进程基础</a></p>
<p>​    <a href="../Python并发编程/3-进程调度/">3-进程调度</a></p>
<p>​    <a href="../Python并发编程/4-进程的并行和并发/">4-进程的并行和并发</a></p>
<p>​    <a href="../Python并发编程/5-同步异步阻塞非阻塞/">5-同步异步阻塞非阻塞</a></p>
<p>​    <a href="../Python并发编程/6-进程的创建和结束/">6-进程的创建和结束</a></p>
<p>​    <a href="../Python并发编程/7-开启多进程(multiprocess.process)/">7-开启多进程(multiprocess.process)</a></p>
<p>​    <a href="../Python并发编程/8-进程同步(multiprocess.Lock)/">8-进程同步(multiprocess.Lock)</a></p>
<p>​    <a href="../Python并发编程/9-进程间通信(multiprocess.Queue)/">9-进程间通信(multiprocess.Queue)</a></p>
<p>​    <a href="../Python并发编程/10-进程间数据共享(multiprocess.Manager)/">10-进程间数据共享(multiprocess.Manager)</a></p>
<p>​    <a href="../Python并发编程/12-线程基础/">12-线程基础</a></p>
<p>​    <a href="../Python并发编程/13-进程和线程的区别/">13-进程和线程的区别</a></p>
<p>​    <a href="../Python并发编程/14-使用线程的场景/">14-使用线程的场景</a></p>
<p>​    <a href="../Python并发编程/15-内存中的线程/">15-内存中的线程</a></p>
<p>​    <a href="../Python并发编程/16-GIL全局解释器锁/">16-GIL全局解释器锁</a></p>
<p>​    <a href="../Python并发编程/17-创建多线程/">17-创建多线程</a></p>
<p>​    <a href="../Python并发编程/18-守护线程/">18-守护线程</a></p>
<p>​    <a href="../Python并发编程/19-锁-信号量-Event事件/">19-锁-信号量-Event事件</a></p>
<p>​    <a href="../Python并发编程/20-线程队列/">20-线程队列</a></p>
<p>​    <a href="../Python并发编程/21-concurrent模块/">21-concurrent模块</a></p>
<p>​    <a href="../Python并发编程/22-协程基础/">22-协程基础</a></p>
<p>​    <a href="../Python并发编程/23-协程之greenlet模块/">23-协程之greenlet模块</a></p>
<p>​    <a href="../Python并发编程/24-协程之gevent模块/">24-协程之gevent模块</a></p>
<p>​    <a href="../Python并发编程/25-IO模型/">25-IO模型</a></p>
<p>​    <a href="../Python并发编程/26-并发编程小结/">26-并发编程小结</a></p>
<p>​    <a href="../Python并发编程/27-并发下的socket套接字编程/">27-并发下的socket套接字编程</a></p>
<h2 id="16-Python异步IO并发"><a href="#16-Python异步IO并发" class="headerlink" title="16-Python异步IO并发"></a>16-Python异步IO并发</h2><p>​    <a href="../Python异步IO并发/1-Python中的GIL/">1-Python中的GIL</a><br>​<br>​    <a href="../Python异步IO并发/2-进程线程与协程/">2-进程线程与协程</a><br>​<br>​    <a href="../Python异步IO并发/3-IO操作与IO模型/">3-IO操作与IO模型</a><br>​<br>​    <a href="../Python异步IO并发/4-Python中多线程/">4-Python中多线程</a><br>​<br>​    <a href="../Python异步IO并发/5-Python中多进程/">5-Python中多进程</a><br>​<br>​    <a href="../Python异步IO并发/6-Python中协程/">6-Python中协程</a><br>​<br>​    <a href="../Python异步IO并发/7-Python异步库之asyncio/">7-Python异步库之asyncio</a><br>​<br>​    <a href="../Python异步IO并发/8-Python异步库之gevent/">1-8-Python异步库之gevent</a><br>​<br>​    <a href="../Python异步IO并发/9-Python异步库之tornado/">9-Python异步库之tornado</a><br>​<br>​    <a href="../Python异步IO并发/10-Python异步库之twisted/">10-Python异步库之twisted</a><br>​<br>​    <a href="../Python异步IO并发/11-Python异步库之celery/">11-Python异步库之celery</a></p>
<h2 id="17-MySQL数据库入门"><a href="#17-MySQL数据库入门" class="headerlink" title="17-MySQL数据库入门"></a>17-MySQL数据库入门</h2><p><a href="../MySQL入门/1-数据库基础/">1-数据库基础</a></p>
<p><a href="../MySQL入门/2-初识MySQL/">2-初识MySQL</a></p>
<p><a href="../MySQL入门/3-Windows安装MySQL/">3-Windows安装MySQL</a></p>
<p><a href="../MySQL入门/4-Linux安装MySQL/">4-Linux安装MySQL</a></p>
<p><a href="../MySQL入门/5-Mac安装MySQL/">5-Mac安装MySQL</a></p>
<p><a href="../MySQL入门/6-MySQL存储引擎概述/">6-MySQL存储引擎概述</a></p>
<p><a href="../MySQL入门/7-MySQL库操作-表操作/">7-MySQL库操作-表操作</a></p>
<p><a href="../MySQL入门/8-MySQL支持的数据类型/">8-MySQL支持的数据类型</a></p>
<p><a href="../MySQL入门/9-MySQL表的完整性约束/">9-MySQL表的完整性约束</a></p>
<p><a href="../MySQL入门/10-MySQL记录操作/">10-MySQL记录操作</a></p>
<p><a href="../MySQL入门/11-MySQL单表查询/">11-MySQL单表查询</a></p>
<p><a href="../MySQL入门/12-MySQL多表查询/">12-MySQL多表查询</a></p>
<p><a href="../MySQL入门/13-MySQL多表查询综合练习答案/">13-MySQL多表查询综合练习答案</a></p>
<p><a href="../MySQL入门/14-MySQL索引原理/">14-MySQL索引原理</a></p>
<p><a href="../MySQL入门/15-MySQL索引的数据结构-B+树介绍/">15-MySQL索引的数据结构-B+树介绍</a></p>
<p><a href="../MySQL入门/16-MySQL性能分析之Explain/">16-MySQL性能分析之Explain</a></p>
<p><a href="../MySQL入门/17-使用Python操作MySQL数据库/">17-使用Python操作MySQL数据库</a></p>
<h2 id="18-前端"><a href="#18-前端" class="headerlink" title="18-前端"></a>18-前端</h2><p>​    <a href="../前端/1-HTML5基础/">1-HTML5基础</a><br>​    <a href="../前端/2-HTML5常用标签/">2-HTML5常用标签</a><br>​    <a href="../前端/3-CSS基础/">3-CSS基础</a><br>​    <a href="../前端/4-CSS3选择器/">4-CSS3选择器</a><br>​    <a href="../前端/5-CSS3基础样式/">5-CSS3基础样式</a><br>​    <a href="../前端/6-CSS3基础布局/">6-CSS3基础布局</a><br>​    <a href="../前端/7-响应式布局/">7-响应式布局</a><br>​    <a href="../前端/8-JavaScript基础/">8-JavaScript基础</a><br>​    <a href="../前端/9-JavaScript基本数据类型/">9-JavaScript基本数据类型</a><br>​    <a href="../前端/10-JavaScript函数/">10-JavaScript函数</a><br>​    <a href="../前端/12-JS的BOM操作/">12-JS的BOM操作</a><br>​    <a href="../前端/13-JS的DOM操作/">13-JS的DOM操作</a><br>​    <a href="../前端/14-JQuery基础/">14-JQuery基础</a><br>​    <a href="../前端/15-JQuery选择器/">15-JQuery选择器</a><br>​    <a href="../前端/16-JQuery文本属性样式操作/">16-JQuery文本属性样式操作</a><br>​    <a href="../前端/17-JQuery操作DOM/">17-JQuery操作DOM</a><br>​    <a href="../前端/18-JQuery动画效果/">18-JQuery动画效果</a><br>​    <a href="../前端/19-JQuery插件/">19-JQuery插件</a><br>​    <a href="../前端/20-BootStrap基础/">20-BootStrap基础</a><br>​    <a href="../前端/21-BootStrap布局/">21-BootStrap布局</a><br>​    <a href="../前端/22-BootStrap组件/">22-BootStrap组件</a><br>​    <a href="../前端/23-BootStrap插件/">23-BootStrap插件</a></p>
<h2 id="19-前端"><a href="#19-前端" class="headerlink" title="19-前端"></a>19-前端</h2><p>​    <a href="../vue/1-Vue介绍/">1-Vue介绍</a></p>
<p>​    <a href="../vue/2-Vue基础/">2-Vue基础</a></p>
<p>​    <a href="../vue/3-Vue生命期钩子/">3-Vue生命期钩子</a></p>
<p>​    <a href="../vue/4-Vue组件/">4-Vue组件</a></p>
<p>​    <a href="../vue/5-Vue进阶/">5-Vue进阶</a></p>
<p>​    <a href="../vue/6-Vue-cli/">6-Vue-cli</a></p>
<p>​    <a href="../vue/7-Vue插件/">7-Vue插件</a></p>
<p>​    <a href="../vue/8-Vue第三方框架之ElementUi/">8-Vue第三方框架之ElementUi</a></p>
<h2 id="20-Django从入门到高级"><a href="#20-Django从入门到高级" class="headerlink" title="20-Django从入门到高级"></a>20-Django从入门到高级</h2><h3 id="Django入门"><a href="#Django入门" class="headerlink" title="Django入门"></a>Django入门</h3><p>​    <a href="../Django框架/1-Web应用/">1-Web应用</a></p>
<p>​    <a href="../Django框架/2-Http协议/">2-Http协议</a></p>
<p>​    <a href="../Django框架/3-Web框架/">3-Web框架</a></p>
<p>​    <a href="../Django框架/4-Django简介/">4-Django简介</a></p>
<h3 id="Django进阶"><a href="#Django进阶" class="headerlink" title="Django进阶"></a>Django进阶</h3><p>​    路由层：<a href="../Django框架/5-路由控制/">5-路由控制</a></p>
<p>​    视图层：<a href="../Django框架/6-视图层/">6-视图层</a></p>
<p>​    模板层：<a href="../Django框架/7-模板层/">7-模板层</a></p>
<p>​    模型层：<a href="../Django框架/8-模型层-单表操作/">8-单表操作</a> –|| –  <a href="../Django框架/9-模型层-多表操作/">9-多表操作</a>  –|| –  <a href="../Django框架/10-模型层-常用非常用字段和参数/">10-其他用字段和参数</a>  –|| –  <a href="../Django框架/11-模型层-模型层进阶/">11-模型层进阶</a>     </p>
<h3 id="Django高级"><a href="#Django高级" class="headerlink" title="Django高级"></a>Django高级</h3><p><a href="../Django框架/12-Django高级之-Django与Ajax/">12-Django与Ajax</a></p>
<p><a href="../Django框架/13-Django高级之-分页器/">13-Django高级之-分页器</a></p>
<p><a href="../Django框架/14-Django高级之-forms组件/">14-Django高级之-forms组件</a></p>
<p><a href="../Django框架/15-Django高级之-cookie与session/">15-Django高级之-cookie与session</a></p>
<p><a href="../Django框架/16-Django高级之-中间件/">16-Django高级之-中间件</a></p>
<p><a href="../Django框架/17-Django高级之-Auth/">17-Django高级之-Auth</a></p>
<p><a href="../Django框架/18-Django高级之-ContentType/">18-Django高级之-ContentType</a></p>
<p><a href="../Django框架/19-Django高级之-缓存/">19-Django高级之-缓存</a></p>
<p><a href="../Django框架/20-Django高级之-信号/">20-Django高级之-信号</a></p>
<p><a href="../Django框架/21-Django高级之-跨站请求伪造/">21-Django高级之-跨站请求伪造</a></p>
<p><a href="../Django框架/22-Django高级之-跨域问题/">22-Django高级之-跨域问题</a></p>
<p><a href="../Django框架/23-Django高级之-cookie-session-token/">23-Django高级之-cookie-session-token</a></p>
<h2 id="21-Django-rest-framework框架"><a href="#21-Django-rest-framework框架" class="headerlink" title="21-Django-rest-framework框架"></a>21-Django-rest-framework框架</h2><p>​    <a href="../Django-rest-framework框架/1-drf-drf入门规范/">1-drf-drf入门规范</a></p>
<p>​    <a href="../Django-rest-framework框架/2-drf-序列化组件/">2-drf-序列化组件</a></p>
<p>​    <a href="../Django-rest-framework框架/3-drf-请求与响应/">3-drf-请求与响应</a></p>
<p>​    <a href="../Django-rest-framework框架/4-drf-视图组件/">4-drf-视图组件</a></p>
<p>​    <a href="../Django-rest-framework框架/5-drf-路由组件/">5-drf-路由组件</a></p>
<p>​    <a href="../Django-rest-framework框架/6-drf-认证权限频率/">6-drf-认证权限频率</a></p>
<p>​    <a href="../Django-rest-framework框架/7-drf-过滤排序分页异常处理/">7-drf-过滤排序分页异常处理</a></p>
<p>​    <a href="../Django-rest-framework框架/8-drf-自动生成接口文档/">8-drf-自动生成接口文档</a></p>
<p>​    <a href="../Django-rest-framework框架/9-drf-JWT认证/">9-drf-JWT认证</a></p>
<p>​    <a href="../Django-rest-framework框架/10-drf-Xadmin的使用/">10-drf-Xadmin的使用</a></p>
<p>​    <a href="../Django-rest-framework框架/11-Book系列多表群操作/">11-Book系列多表群操作</a></p>
<p>​    <a href="../Django-rest-framework框架/12-RBAC-基于角色的访问控制/">12-RBAC-基于角色的访问控制</a></p>
<h2 id="22-路飞项目"><a href="#22-路飞项目" class="headerlink" title="22-路飞项目"></a>22-路飞项目</h2><h3 id="1-项目基础"><a href="#1-项目基础" class="headerlink" title="1-项目基础"></a>1-项目基础</h3><p>​    <a href="../路飞项目/1-项目基础/0-路飞学城/">0-路飞项目</a></p>
<p>​    <a href="../路飞项目/1-项目基础/1-pip源/">1-pip源</a></p>
<p>​    <a href="../路飞项目/1-项目基础/2-虚拟环境的搭建/">2-虚拟环境的搭建</a></p>
<p>​    <a href="../路飞项目/1-项目基础/3-luffy后台/">3-luffy后台</a></p>
<p>​    <a href="../路飞项目/1-项目基础/4-luffy后台配置/">4-luffy后台配置</a></p>
<p>​    <a href="../路飞项目/1-项目基础/5-luffy数据库/">5-luffy数据库</a></p>
<p>​    <a href="../路飞项目/1-项目基础/6-user模块User表/">6-user模块User表</a></p>
<p>​    <a href="../路飞项目/1-项目基础/7-luffy前台/">7-luffy前台</a></p>
<p>​    <a href="../路飞项目/1-项目基础/8-luffy前台配置/">8-luffy前台配置</a></p>
<p>​    <a href="../路飞项目/1-项目基础/9-luffy前台主页/">9-luffy前台主页</a></p>
<p>​    <a href="../路飞项目/1-项目基础/10-后台主页模块设计/">10-后台主页模块设计</a></p>
<p>​    <a href="../路飞项目/1-项目基础/11-xadmin后台管理/">11-xadmin后台管理</a></p>
<p>​    <a href="../路飞项目/1-项目基础/12-前后台分离跨域交互/">12-前后台分离跨域交互</a></p>
<p>​    <a href="../路飞项目/1-项目基础/13-自定义配置/">13-自定义配置</a></p>
<p>​    <a href="../路飞项目/1-项目基础/14-浏览器屏幕缩放bug修复/">14-浏览器屏幕缩放bug修复</a></p>
<p>​    <a href="../路飞项目/1-项目基础/15-跨域请求详解/">15-跨域请求详解</a>    </p>
<h3 id="2-git笔记"><a href="#2-git笔记" class="headerlink" title="2-git笔记"></a>2-git笔记</h3><p>​    <a href="../路飞项目/2-git笔记/1-git/">1-git.md</a></p>
<h3 id="3-登录注册"><a href="#3-登录注册" class="headerlink" title="3-登录注册"></a>3-登录注册</h3><p>​    <a href="../路飞项目/3-登录注册/1-登录注册页面/">1-登录注册页面</a></p>
<p>​    <a href="../路飞项目/3-登录注册/2-多方式登录/">2-多方式登录</a></p>
<p>​    <a href="../路飞项目/3-登录注册/3-手机是否存在验证接口/">3-手机是否存在验证接口</a></p>
<p>​    <a href="../路飞项目/3-登录注册/4-腾讯云短信开发/">4-腾讯云短信开发</a></p>
<p>​    <a href="../路飞项目/3-登录注册/5-短信验证码接口/">5-短信验证码接口</a></p>
<p>​    <a href="../路飞项目/3-登录注册/6-短信登录接口/">6-短信登录接口</a></p>
<p>​    <a href="../路飞项目/3-登录注册/7-短信注册接口/">7-短信注册接口</a></p>
<p>​    <a href="../路飞项目/3-登录注册/8-前台登录注册修订/">8-前台登录注册</a><br>​    </p>
<h3 id="4-redis"><a href="#4-redis" class="headerlink" title="4-redis"></a>4-redis</h3><p>​    <a href="../路飞项目/4-redis/1-redis操作/">1-redis操作</a>    </p>
<h3 id="5-celery"><a href="#5-celery" class="headerlink" title="5-celery"></a>5-celery</h3><p>​    <a href="../路飞项目/5-celery/1-celery/">1-celery</a>        </p>
<h3 id="6-课程模块"><a href="#6-课程模块" class="headerlink" title="6-课程模块"></a>6-课程模块</h3><p>​    <a href="../路飞项目/6-课程模块/1-课程页页面/">1-课程页页面</a>    </p>
<p>​    <a href="../路飞项目/6-课程模块/2-课程主页之课程表分析/">2-课程主页之课程表分析</a>    </p>
<p>​    <a href="../路飞项目/6-课程模块/3-课程主页之课程表数据/">3-课程主页之课程表数据</a>    </p>
<p>​    <a href="../路飞项目/6-课程模块/4-课程主页之课程页面/">4-课程主页之课程页面</a>    </p>
<p>​    <a href="../路飞项目/6-课程模块/5-课程主页之课程接口/">5-课程主页之课程接口</a>    </p>
<p>​    <a href="../路飞项目/6-课程模块/6-课程详情页之前台/">6-课程详情页之前台</a>    </p>
<p>​    <a href="../路飞项目/6-课程模块/7-课程详情页之后台/">7-课程详情页之后台</a><br>​    </p>
<h3 id="7-搜索功能"><a href="#7-搜索功能" class="headerlink" title="7-搜索功能"></a>7-搜索功能</h3><p>​    <a href="../路飞项目/7-搜索功能/1-搜索导航栏/">1-搜索导航栏</a></p>
<p>​    <a href="../路飞项目/7-搜索功能/2-搜索后台接口/">2-搜索后台接口</a>    </p>
<p>​    <a href="../路飞项目/7-搜索功能/3-搜索页面/">3-搜索页面</a></p>
<h3 id="8-支付"><a href="#8-支付" class="headerlink" title="8-支付"></a>8-支付</h3><p>​    <a href="../路飞项目/8-支付/1-支付宝支付/">1-支付宝支付</a></p>
<h3 id="9-上线"><a href="#9-上线" class="headerlink" title="9-上线"></a>9-上线</h3><p>​    <a href="../路飞项目/9-上线/1-docker/">1-Docker</a></p>
<p>​    <a href="../路飞项目/9-上线/2-上线/">2-上线</a>    </p>
<h2 id="23-分布式与微服务"><a href="#23-分布式与微服务" class="headerlink" title="23-分布式与微服务"></a>23-分布式与微服务</h2><p>​    <a href="../分布式与微服务/1-什么是Iaas-Paas和Saas/">1-什么是Iaas-Paas和Saas</a></p>
<p>​    <a href="../分布式与微服务/2-单体应用和缺点/">2-单体应用和缺点</a></p>
<p>​    <a href="../分布式与微服务/3-微服务概念/">3-微服务概念</a></p>
<p>​    <a href="../分布式与微服务/4-传统架构与微服务架构的区别/">4-传统架构与微服务架构的区别</a></p>
<p>​    <a href="../分布式与微服务/5-分布式架构与微服务架构的区别/">5-分布式架构与微服务架构的区别</a></p>
<p>​    <a href="../分布式与微服务/6-SOA架构与微服务架构的区别/">6-SOA架构与微服务架构的区别</a></p>
<p>​    <a href="../分布式与微服务/7-微服务实战/">7-微服务实战</a></p>
<p>​    <a href="../分布式与微服务/8-什么是RPC/">8-什么是RPC</a></p>
<p>​    <a href="../分布式与微服务/9-CAP定理和BASE理论/">9-CAP定理和BASE理论</a></p>
<p>​<br>​    </p>
</section>
    <!-- Tags START -->
    
      <div class="tags">
        <span>Tags:</span>
        
  <a href="/tags#汇总" >
    <span class="tag-code">汇总</span>
  </a>

      </div>
    
    <!-- Tags END -->
    <!-- NAV START -->
    
  <div class="nav-container">
    <!-- reverse left and right to put prev and next in a more logic postition -->
    
      <a class="nav-left" href="/go/2-Go%E8%AF%AD%E8%A8%80%E5%9F%BA%E7%A1%80/20-%E5%B9%B6%E5%8F%91%E5%85%A5%E9%97%A8/">
        <span class="nav-arrow">← </span>
        
          20-并发入门
        
      </a>
    
    
      <a class="nav-right" href="/go/2-Go%E8%AF%AD%E8%A8%80%E5%9F%BA%E7%A1%80/21-Go%E5%8D%8F%E7%A8%8B/">
        
          21-Go 协程
        
        <span class="nav-arrow"> →</span>
      </a>
    
  </div>

    <!-- NAV END -->
    <!-- 打赏 START -->
    
      <div class="money-like">
        <div class="reward-btn">
          赏
          <span class="money-code">
            <span class="alipay-code">
              <div class="code-image"></div>
              <b>使用支付宝打赏</b>
            </span>
            <span class="wechat-code">
              <div class="code-image"></div>
              <b>使用微信打赏</b>
            </span>
          </span>
        </div>
        <p class="notice">点击上方按钮,请我喝杯咖啡！</p>
      </div>
    
    <!-- 打赏 END -->
    <!-- 二维码 START -->
    
      <div class="qrcode">
        <canvas id="share-qrcode"></canvas>
        <p class="notice">扫描二维码，分享此文章</p>
      </div>
    
    <!-- 二维码 END -->
    
      <!-- Gitment START -->
      <div id="comments"></div>
      <!-- Gitment END -->
    
  </article>
  <!-- Article END -->
  <!-- Catalog START -->
  
    <aside class="catalog-container">
  <div class="toc-main">
  <!-- 不蒜子统计 -->
    <strong class="toc-title">目录</strong>
    
      <ol class="toc-nav"><li class="toc-nav-item toc-nav-level-1"><a class="toc-nav-link" href="#Python系列教程"><span class="toc-nav-text">Python系列教程</span></a><ol class="toc-nav-child"><li class="toc-nav-item toc-nav-level-2"><a class="toc-nav-link" href="#0-其他"><span class="toc-nav-text">0-其他</span></a></li><li class="toc-nav-item toc-nav-level-2"><a class="toc-nav-link" href="#1-markdown编辑器"><span class="toc-nav-text">1-markdown编辑器</span></a></li><li class="toc-nav-item toc-nav-level-2"><a class="toc-nav-link" href="#2-计算机基础"><span class="toc-nav-text">2-计算机基础</span></a></li><li class="toc-nav-item toc-nav-level-2"><a class="toc-nav-link" href="#3-Python解释器和集成环境"><span class="toc-nav-text">3-Python解释器和集成环境</span></a></li><li class="toc-nav-item toc-nav-level-2"><a class="toc-nav-link" href="#4-Python基础"><span class="toc-nav-text">4-Python基础</span></a></li><li class="toc-nav-item toc-nav-level-2"><a class="toc-nav-link" href="#5-Python进阶"><span class="toc-nav-text">5-Python进阶</span></a></li><li class="toc-nav-item toc-nav-level-2"><a class="toc-nav-link" href="#6-文件处理"><span class="toc-nav-text">6-文件处理</span></a></li><li class="toc-nav-item toc-nav-level-2"><a class="toc-nav-link" href="#7-函数基础"><span class="toc-nav-text">7-函数基础</span></a></li><li class="toc-nav-item toc-nav-level-2"><a class="toc-nav-link" href="#8-函数进阶"><span class="toc-nav-text">8-函数进阶</span></a></li><li class="toc-nav-item toc-nav-level-2"><a class="toc-nav-link" href="#9-模块基础"><span class="toc-nav-text">9-模块基础</span></a></li><li class="toc-nav-item toc-nav-level-2"><a class="toc-nav-link" href="#10-常用模块"><span class="toc-nav-text">10-常用模块</span></a></li><li class="toc-nav-item toc-nav-level-2"><a class="toc-nav-link" href="#11-面向对象基础"><span class="toc-nav-text">11-面向对象基础</span></a></li><li class="toc-nav-item toc-nav-level-2"><a class="toc-nav-link" href="#12-面向对象进阶"><span class="toc-nav-text">12-面向对象进阶</span></a></li><li class="toc-nav-item toc-nav-level-2"><a class="toc-nav-link" href="#13-面向对象高级"><span class="toc-nav-text">13-面向对象高级</span></a></li><li class="toc-nav-item toc-nav-level-2"><a class="toc-nav-link" href="#14-网络编程"><span class="toc-nav-text">14-网络编程</span></a></li><li class="toc-nav-item toc-nav-level-2"><a class="toc-nav-link" href="#15-并发编程"><span class="toc-nav-text">15-并发编程</span></a></li><li class="toc-nav-item toc-nav-level-2"><a class="toc-nav-link" href="#16-Python异步IO并发"><span class="toc-nav-text">16-Python异步IO并发</span></a></li><li class="toc-nav-item toc-nav-level-2"><a class="toc-nav-link" href="#17-MySQL数据库入门"><span class="toc-nav-text">17-MySQL数据库入门</span></a></li><li class="toc-nav-item toc-nav-level-2"><a class="toc-nav-link" href="#18-前端"><span class="toc-nav-text">18-前端</span></a></li><li class="toc-nav-item toc-nav-level-2"><a class="toc-nav-link" href="#19-前端"><span class="toc-nav-text">19-前端</span></a></li><li class="toc-nav-item toc-nav-level-2"><a class="toc-nav-link" href="#20-Django从入门到高级"><span class="toc-nav-text">20-Django从入门到高级</span></a><ol class="toc-nav-child"><li class="toc-nav-item toc-nav-level-3"><a class="toc-nav-link" href="#Django入门"><span class="toc-nav-text">Django入门</span></a></li><li class="toc-nav-item toc-nav-level-3"><a class="toc-nav-link" href="#Django进阶"><span class="toc-nav-text">Django进阶</span></a></li><li class="toc-nav-item toc-nav-level-3"><a class="toc-nav-link" href="#Django高级"><span class="toc-nav-text">Django高级</span></a></li></ol></li><li class="toc-nav-item toc-nav-level-2"><a class="toc-nav-link" href="#21-Django-rest-framework框架"><span class="toc-nav-text">21-Django-rest-framework框架</span></a></li><li class="toc-nav-item toc-nav-level-2"><a class="toc-nav-link" href="#22-路飞项目"><span class="toc-nav-text">22-路飞项目</span></a><ol class="toc-nav-child"><li class="toc-nav-item toc-nav-level-3"><a class="toc-nav-link" href="#1-项目基础"><span class="toc-nav-text">1-项目基础</span></a></li><li class="toc-nav-item toc-nav-level-3"><a class="toc-nav-link" href="#2-git笔记"><span class="toc-nav-text">2-git笔记</span></a></li><li class="toc-nav-item toc-nav-level-3"><a class="toc-nav-link" href="#3-登录注册"><span class="toc-nav-text">3-登录注册</span></a></li><li class="toc-nav-item toc-nav-level-3"><a class="toc-nav-link" href="#4-redis"><span class="toc-nav-text">4-redis</span></a></li><li class="toc-nav-item toc-nav-level-3"><a class="toc-nav-link" href="#5-celery"><span class="toc-nav-text">5-celery</span></a></li><li class="toc-nav-item toc-nav-level-3"><a class="toc-nav-link" href="#6-课程模块"><span class="toc-nav-text">6-课程模块</span></a></li><li class="toc-nav-item toc-nav-level-3"><a class="toc-nav-link" href="#7-搜索功能"><span class="toc-nav-text">7-搜索功能</span></a></li><li class="toc-nav-item toc-nav-level-3"><a class="toc-nav-link" href="#8-支付"><span class="toc-nav-text">8-支付</span></a></li><li class="toc-nav-item toc-nav-level-3"><a class="toc-nav-link" href="#9-上线"><span class="toc-nav-text">9-上线</span></a></li></ol></li><li class="toc-nav-item toc-nav-level-2"><a class="toc-nav-link" href="#23-分布式与微服务"><span class="toc-nav-text">23-分布式与微服务</span></a></li></ol></li></ol>
    
  </div>
</aside>
  
  <!-- Catalog END -->
</main>

<script>
  (function () {
    var url = 'http://www.liuqingzheng.top/python/Python系列教程/';
    var banner = ''
    if (banner !== '' && banner !== 'undefined' && banner !== 'null') {
      $('#article-banner').css({
        'background-image': 'url(' + banner + ')'
      })
    } else {
      $('#article-banner').geopattern(url)
    }
    $('.header').removeClass('fixed-header')

    // error image
    $(".markdown-content img").on('error', function() {
      $(this).attr('src', 'http://file.muyutech.com/error-img.png')
      $(this).css({
        'cursor': 'default'
      })
    })

    // zoom image
    $(".markdown-content img").on('click', function() {
      var src = $(this).attr('src')
      if (src !== 'http://file.muyutech.com/error-img.png') {
        var imageW = $(this).width()
        var imageH = $(this).height()

        var zoom = ($(window).width() * 0.95 / imageW).toFixed(2)
        zoom = zoom < 1 ? 1 : zoom
        zoom = zoom > 2 ? 2 : zoom
        var transY = (($(window).height() - imageH) / 2).toFixed(2)

        $('body').append('<div class="image-view-wrap"><div class="image-view-inner"><img src="'+ src +'" /></div></div>')
        $('.image-view-wrap').addClass('wrap-active')
        $('.image-view-wrap img').css({
          'width': `${imageW}`,
          'transform': `translate3d(0, ${transY}px, 0) scale3d(${zoom}, ${zoom}, 1)`
        })
        $('html').css('overflow', 'hidden')

        $('.image-view-wrap').on('click', function() {
          $(this).remove()
          $('html').attr('style', '')
        })
      }
    })
  })();
</script>


  <script>
    var qr = new QRious({
      element: document.getElementById('share-qrcode'),
      value: document.location.href
    });
  </script>



  <script>
    var gitmentConfig = "liuqingzheng";
    if (gitmentConfig !== 'undefined') {
      var gitment = new Gitment({
        id: "[置顶]Python系列教程",
        owner: "liuqingzheng",
        repo: "FuckBlog",
        oauth: {
          client_id: "32a4076431cf39d0ecea",
          client_secret: "94484bd79b3346a949acb2fda3c8a76ce16990c6"
        },
        theme: {
          render(state, instance) {
            const container = document.createElement('div')
            container.lang = "en-US"
            container.className = 'gitment-container gitment-root-container'
            container.appendChild(instance.renderHeader(state, instance))
            container.appendChild(instance.renderEditor(state, instance))
            container.appendChild(instance.renderComments(state, instance))
            container.appendChild(instance.renderFooter(state, instance))
            return container;
          }
        }
      })
      gitment.render(document.getElementById('comments'))
    }
  </script>




    <div class="scroll-top">
  <span class="arrow-icon"></span>
</div>
    <footer class="app-footer">
<!-- 不蒜子统计 -->
<span id="busuanzi_container_site_pv">
     本站总访问量<span id="busuanzi_value_site_pv"></span>次
</span>
<span class="post-meta-divider">|</span>
<span id="busuanzi_container_site_uv" style='display:none'>
     本站访客数<span id="busuanzi_value_site_uv"></span>人
</span>
<script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>



  <p class="copyright">
    &copy; 2021 | Proudly powered by <a href="https://www.cnblogs.com/xiaoyuanqujing" target="_blank">小猿取经</a>
    <br>
    Theme by <a href="https://www.cnblogs.com/xiaoyuanqujing" target="_blank" rel="noopener">小猿取经</a>
  </p>
</footer>

<script>
  function async(u, c) {
    var d = document, t = 'script',
      o = d.createElement(t),
      s = d.getElementsByTagName(t)[0];
    o.src = u;
    if (c) { o.addEventListener('load', function (e) { c(null, e); }, false); }
    s.parentNode.insertBefore(o, s);
  }
</script>
<script>
  async("//cdnjs.cloudflare.com/ajax/libs/fastclick/1.0.6/fastclick.min.js", function(){
    FastClick.attach(document.body);
  })
</script>

<script>
  var hasLine = 'true';
  async("//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js", function(){
    $('figure pre').each(function(i, block) {
      var figure = $(this).parents('figure');
      if (hasLine === 'false') {
        figure.find('.gutter').hide();
      }
      var lang = figure.attr('class').split(' ')[1] || 'code';
      var codeHtml = $(this).html();
      var codeTag = document.createElement('code');
      codeTag.className = lang;
      codeTag.innerHTML = codeHtml;
      $(this).attr('class', '').empty().html(codeTag);
      figure.attr('data-lang', lang.toUpperCase());
      hljs.highlightBlock(block);
    });
  })
</script>





<!-- Baidu Tongji -->

<script>
    var _baId = 'c5fd96eee1193585be191f318c3fa725';
    // Originial
    var _hmt = _hmt || [];
    (function() {
      var hm = document.createElement("script");
      hm.src = "//hm.baidu.com/hm.js?" + _baId;
      var s = document.getElementsByTagName("script")[0];
      s.parentNode.insertBefore(hm, s);
    })();
</script>


<script src="/js/script.js"></script>


<script src="/js/search.js"></script>


<script src="/js/load.js"></script>



  <span class="local-search local-search-google local-search-plugin" style="right: 50px;top: 70px;;position:absolute;z-index:2;">
      <input type="search" placeholder="站内搜索" id="local-search-input" class="local-search-input-cls" style="">
      <div id="local-search-result" class="local-search-result-cls"></div>
  </span>


  </body>
</html>